const { electronAPI } = require('@electron-toolkit/preload')
const { contextBridge, ipcRenderer } = require('electron')

// 渲染器自定义 API
const api = {
    // 测试用
    ping: () => ipcRenderer.invoke('dialog:ping'),
    // 窗口操作
    minimize: () => ipcRenderer.invoke('window:minimize'),
    maximize: () => ipcRenderer.invoke('window:maximize'),
    close: () => ipcRenderer.invoke('window:close'),
    // 获取窗口ID
    getWindowId: () => ipcRenderer.invoke('window:get-window-id'),
    
    // 日志系统相关方法
    // 获取解析后的日志数据
    getLogs: () => ipcRenderer.invoke('logger:getParsedLogs'),
    
    // 导出日志数据
    exportLogs: async (logs) => {
        return await ipcRenderer.invoke('logger:exportLogsWithDialog', logs);
    },
    
    // 清空日志
    clearLogs: async () => {
        return await ipcRenderer.invoke('logger:clearLogsWithLogging');
    },
    
    // 写入日志
    writeLog: (level, message, meta = {}) => ipcRenderer.invoke('logger:write', level, message, meta),
    
    // 获取日志配置
    getLogConfig: () => ipcRenderer.invoke('logger:getConfig'),
    
    // 更新日志配置
    updateLogConfig: (config) => ipcRenderer.invoke('logger:updateConfig', config)
}



if (process.contextIsolated) {
    try {
        contextBridge.exposeInMainWorld('electron', electronAPI)
        contextBridge.exposeInMainWorld('electronAPI', api)
    } catch (error) {
        console.error(error)
    }
} else {
    window.electron = electronAPI
    window.electronAPI = api
}
